1. Field of the Invention
Aspects of the present invention relate to a method of balancing communication load and, more particularly, to a method of balancing communication load in a system based on a determination of user-user affinity levels.
2. Description of the Background
In a server environment or system, it is known that multiple users may log onto communication applications run by the servers via clients and may issue communications, such as requests and/or updates, in accordance with the operation of the communication application. When this occurs, it becomes necessary for the system to monitor and spread those communications across different servers so as to prevent a single server from becoming bogged down with an excess of communications to handle given its processing resources. Load balancing methods have been observed to be somewhat effective methods of controlling the monitoring and the spreading of those communications across different servers.
In general, load balancing in a system is usually provided by software installed on the system or hardware in a network and refers to a technique of spreading work between two or more servers, computers, network links, CPUs, hard drives, or other resources so as to achieve optimal resource utilization, throughput and/or response time for the system. The use of multiple components with load balancing in a system may increase reliability of the system through effects of redundancies therein.
In particular, load balancing may refer to methods of balancing loads across a plurality of servers, including distributing client requests equally among different servers, or determining network proximities so as to send a request to a server to which the request originating client is geographically close. While, these methods may solve problems with balancing network traffic and CPU load, issues in synchronizing data between the servers in order to provide up to date information back to clients remain.
In an example, an instant messaging server environment may have 3 servers to which clients connect. User 1 and User 2 are located in different parts of the world but only send instant messages to each other and only receive online status updates from each other. Using a typical load balancing approach, User 1 and User 2 may end up connecting to different servers, which would then need to synchronize data between each other in order for the User 1 and the User 2 to receive up to date information.